package com.cmc.cloud.cmclink.doc.convert;

import com.cmc.cloud.cmclink.doc.api.document.rep.BlnoCntrRespDto;
import com.cmc.cloud.cmclink.doc.api.document.req.si.BlnoCntrUpdateReqDto;
import com.cmc.cloud.cmclink.doc.entity.BlnoCntrDO;
import com.cmc.cloud.cmclink.doc.mq.SiEdiReqVO;
import com.cmc.cloud.cmclink.doc.vo.blnocntrvo.BlnoCntrCreateReqVO;
import com.cmc.cloud.cmclink.doc.vo.blnocntrvo.BlnoCntrRespVO;
import com.cmc.cloud.cmclink.doc.vo.blnocntrvo.BlnoCntrUpdateReqVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 提单货物信息 Convert
 *
 * @author 集运管理员
 */
@Mapper
public interface BlnoCntrConvert {

    BlnoCntrConvert INSTANCE = Mappers.getMapper(BlnoCntrConvert.class);

    /**
     * 属性转换
     *
     * @param bean
     * @return
     */
    BlnoCntrDO convert(BlnoCntrCreateReqVO bean);

    /**
     * 属性转换
     *
     * @param bean
     * @return
     */
    BlnoCntrDO convert(BlnoCntrUpdateReqVO bean);

    /**
     * 属性转换
     *
     * @param bean
     * @return
     */
    BlnoCntrRespVO convert(BlnoCntrDO bean);

    /**
     * 属性转换
     *
     * @param list
     * @return
     */
    List<BlnoCntrRespVO> convertList(List<BlnoCntrDO> list);

    /**
     * 属性转换
     *
     * @param blnoCntrUpdateReqDtoList
     * @return
     */
    List<BlnoCntrUpdateReqVO> convertBlnoCntrUpdateReqVO(List<BlnoCntrUpdateReqDto> blnoCntrUpdateReqDtoList);

    /**
     * 属性转换
     *
     * @param cntrList cntrList
     * @return List<BlnoCntrUpdateReqVO>
     */
    List<BlnoCntrUpdateReqVO> ediConvertBlnoCntrUpdateReqVO(List<SiEdiReqVO.Cntr> cntrList);

    /**
     * 属性转换
     *
     * @param blnoCntrUpdateReqVOList
     * @return
     */
    List<BlnoCntrUpdateReqDto> convertBlnoCntrUpdateReqDto(List<BlnoCntrUpdateReqVO> blnoCntrUpdateReqVOList);

    /**
     * 属性转换
     * @param blnoCntrDoList
     * @return
     */
    List<BlnoCntrRespDto> convertBlnoCntrRespDto(List<BlnoCntrDO> blnoCntrDoList);

}
